// 编写一个"高效"的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性：

// 每行的元素从左到右升序排列。
// 每列的元素从上到下升序排列。

function searchMatrix(matrix: number[][], target: number): boolean {
    const row = matrix.length;
    const col = matrix[0].length;
    // 从右上角开始二分搜索
    let currRow = 0;
    let currCol = col - 1;
    // 保证边界索引合法
    while (currCol >= 0 && currCol < col && currRow >= 0 && currRow < row) {
        if (matrix[currRow][currCol] === target) {
            return true
        } else if (matrix[currRow][currCol] < target) {// 当前元素小就往下移动
            currRow++;
        } else if (matrix[currRow][currCol] > target) {// 当前元素大就往左移动
            currCol--;
        }
    }
    return false;
};
